Cloudflareのカスタムホストネーム、カスタム証明書のHTTP認証をやってみた
こんにちは、yagiです。
Cloudflareのカスタムホストネーム、カスタム証明書の認証方法について、以前はTXTレコードでの認証を実施していましたが、 DNS側にTXTレコードの登録ができない場合がありました。
その際の対処法として、CloudflareからHTTP認証を案内されたため、紹介したいと思います。
Verify custom hostnames · Cloudflare for Platforms docs
やってみる
最初にCloudflare側のDNSの登録をします。 TypeはCNAMEを指定し、Nameについては、ここではカスタムホストの作成で指定するオリジンサーバ名を決めて入力します。Cloudflareの向き先をTargetに指定します。
次に Add custom Hostname を押下してカスタムホストの追加をします。
今回はCloudflareのユニバーサル証明書を使いたいので、Certificate TypeはProvided by Cloudflareを選択しました。
そして、SSL certificate authorityに Google Trust Service を選択して、Certificate validation method に HTTP Validation を選択します。
Custom origin Server には先ほどCloudflareのDNSで入力したオリジンサーバ名に「.サイト名」を付与した値を入力します。
今回はマルチテナント運用のため、Host Headerを指定します。
そうすると証明書の検証リクエストとレスポンスの値、ホスト名の事前検証のTXTと値のペアがそれぞれ出力されるのでコピーします。
それぞれのパスの配下にファイルを作成し、ファイル内に値を記入しておきます。
私はオリジンにS3を使ったので、S3にファイルを格納しています。
しばらく待つと(数分かからない程度)ステータスがActiveになります。
ステータスがActiveになることを確認できたら、DNSでCloudflareへサイトの向き先の切り替えを行います。(今回はAレコードの削除と追加)
以下の通り、TXTレコードは今回作成していません。
結論
カスタムホストのホストネーム及び証明書検証にTXTレコードをDNSに登録することができない場合などに利用できる、HTTP検証について紹介しました。
どなたかの参考になれば幸いです。